This invention is related to the field of use of data compression. More particularly, this invention is directed to a method and apparatus for compressing three dimensional surface data.
Three-dimensional (3D) object models have a sense of depth that is lacking in two-dimensional (2D) object models. Another advantage of 3D models is that the models may be viewed from many different angles, thus, the combination of the advantages provide the models with a sense of virtual reality. In so providing, the viewer gets a better xe2x80x9cfeelxe2x80x9d of the object than would otherwise be possible with a 2D model of the object. Accordingly, the commercial viability of 3D object models is remarkably pronounced in the entertainment, advertisement and simulation industries. According to one example, with the growing popularity of Internet, in one area, it may be desirable to provide 3D on-line experience of advertised products, computer games, animated videos, 3D models of real objects and so forth.
However, one drawback is the enormous amount of information that needs to be transmitted from a server location to a client location to provide the 3D experience. 3D information is generally stored in several subparts. For example, the first subpart may be a cloud of points in 3D space, each point having a X, Y, Z coordinate in a 3D coordinate system. The second subpart may be a list of xe2x80x9cfaces.xe2x80x9d For example, a face may be a triangle with its vertices being three of the cloud of points in the 3D space. The formation of the faces may form the 3D structure of the modeled object. Yet a third subpart may contain surface information such as material, color and texture of the object associated with the faces. Thus, an enormous amount of information typically has to be processed for each set of 3D objects. Consequently bandwidth constraints of the communication channel between a server and a client may be a factor when the models have to be transferred. In addition, the amount of information that needs to be stored also requires significant resources.
One embodiment of the invention is a method for processing a three-dimensional (3D) graphics object. A set of vertices for the 3D graphics object are converted. The 3D graphics object is then decomposed into a set of segments. A set of vertex coordinates is extracted for each segment and the set of vertex coordinates is subtracted from a previously determined set of vertex coordinates to produce a set of encoded vertex coordinates. Finally, the set of encoded vertex coordinates is compressed. An apparatus for performing the method is also disclosed.